home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / msdos / plotting / pcgplots / gpta.h < prev    next >
C/C++ Source or Header  |  1992-04-24  |  4KB  |  119 lines

  1. void  myError(const char * , const char * , int  );
  2. // forward refs
  3. class Window;
  4. class Scroller;
  5. class FrameWindow;
  6. class CGMWindow;
  7. class WMetaWindow;
  8. class FileObject;
  9. class IndexObject;
  10. class PageObject;
  11. class cgmObject;
  12. class cgmFile;
  13. class cgmMetafile;
  14. class    cgmPicture;
  15. class clearOutput;
  16. class baseDisplay;
  17.  
  18. //typedefs
  19. typedef Window * WindowPt;
  20. typedef FrameWindow * FrameWindowPt;
  21. typedef cgmObject   * CgmObjectPt;
  22. typedef CGMWindow   * CgmWindowPt;
  23. typedef WMetaWindow * WMetaWindowPt;
  24. typedef FileObject  * FileObjectPt;
  25. typedef IndexObject * IndexObjectPt;
  26. typedef PageObject  * PageObjectPt;
  27. typedef cgmFile     * CgmFilePt;
  28. typedef cgmPicture  * CgmPicturePt;
  29. typedef cgmMetafile * CgmMetafilePt;
  30. typedef clearOutput * ClearOutputPt;
  31. typedef baseDisplay * BaseDisplayPt;
  32. typedef const LPSTR cStr;
  33.  
  34. enum Modes { READFILE, CREATEFILE };
  35.  
  36.  // *** class FileObject
  37. class FileObject
  38. {
  39.     public:
  40.     static FileObjectPt ThisFileObject;
  41.     private:
  42.     char Path[128];
  43.     char Spec[128];
  44.     char Ext[20];
  45.     char *DialogMess;
  46.     int HFile;
  47.     OFSTRUCT OF;
  48.     WORD wAttr;
  49.     enum   {FILE_SELECTED, NO_FILE_SELECTED};
  50.     public:
  51.     ~FileObject( void )
  52.       { if (HFile) _lclose(HFile);
  53.          if (DialogMess) delete DialogMess;
  54.       }
  55.     FileObject( void )
  56.      { HFile = NULL; Spec[0] = '\0'; Path[0] = '\0'; Ext[0] = '\0';
  57.         DialogMess = NULL;
  58.      }
  59.     void DialogFileSetup(cStr Mess, cStr Path, cStr Spec, cStr Ext, WORD wAttr );
  60.     int GetHandle( void) { return HFile; }
  61.     const char *GetFileName(void){return (const char *)&OF.szPathName[0];}// { return &Spec[0]; }
  62.     void DialogFileInfo( );
  63.     BOOL OpenRead(HWND hWndParent);
  64.     BOOL OpenWrite(  HWND hWndParent);
  65.     static BOOL GetNewChoice(HWND hDlg, enum Modes FileAction);
  66.     static BOOL FAR PASCAL FileOpenDlgProc (HWND hDlg, WORD message,
  67.                                                                 WORD wParam, LONG lParam);
  68.     static BOOL FAR PASCAL FileNewDlgProc (HWND hDlg, WORD message,
  69.                                                                 WORD wParam, LONG lParam);
  70.  
  71. };  // End of class FileObject
  72.  
  73. class cgmObject
  74. {
  75.     private:
  76.     FileObjectPt file;         // note, also held by cgmwindow
  77.     CgmFilePt cgm;
  78.     CgmWindowPt cgmWin;
  79.     CgmMetafilePt cgmMeta;
  80.     CgmPicturePt  curPic;       // current picture to be displayed
  81.     CgmPicturePt  lastPic;      // last picture displayed
  82.     WORD          PicNum;           // current picture #
  83.     WORD          Pictures;     // # of pictures
  84.     BOOL          IsIndexed;
  85.     BOOL          DidFullMeta;
  86.     HANDLE        hMeta;        // Windows metafile
  87.     HBITMAP       hCompBit;
  88.     HDC           hMemDC;
  89.     HBITMAP       hOldBit;
  90.     public:
  91.     cgmObject(CgmWindowPt cgmWin, FileObjectPt fobj );
  92.     BOOL IsValidCgm(void)  { if (cgmMeta) return TRUE;  else return FALSE; }
  93.     BOOL IsSamePic(void)  { if ( !lastPic || curPic == lastPic ) return TRUE;
  94.                                      else return FALSE; }
  95.     WORD IndexCgm();
  96.     WORD GetPicNum(void) {return PicNum;}
  97.     inline BOOL NextPageExists(void);
  98.     inline BOOL PrevPageExists(void);
  99.     inline void GetPageText( PSTR text)
  100.           {wsprintf((LPSTR)text,"PAGE %d", PicNum);}
  101.     void SetLastCur(void) { lastPic = curPic; }
  102.     void GetPictureText(PSTR text, void **picture);
  103.     BOOL GetSel( void **picture);
  104.     void SetSel(BOOL , void **picture);
  105.     BOOL PreviousPage(void);
  106.     BOOL NextPage(void);
  107.     BOOL NewPage(WORD page);
  108.     inline void ZapLastPic(void);
  109.     inline void ReadCurPic(void);
  110.     void DisplayCurPic(HWND, RECT *, Scroller *);
  111.     void GPlotInit(void );
  112.     void MakeClearText(FileObjectPt fobj );
  113.     void WriteMetaFile(FileObjectPt fobj);
  114.     void MakeBitmapMeta(HWND hWnd, RECT *rect, Scroller *sbars); //OBSOLETE
  115.     void MakeStar(HDC dev , HDC meta); //FOR TEST ONLY
  116.     ~cgmObject(void);
  117. };  // end of CgmObject class
  118.  
  119.